1
超越順利之路:處理例外狀況
AI035Lesson 5
00:00

在 Ruby 中,轉向 超越順利之路 意味著從線性邏輯轉變為防禦性姿態,其中失敗被視為 一等物件 而非導致程式終止的災難。

1. 例外狀況層級結構

Ruby 預先定義了一個整齊的例外狀況層級結構,如 圖 8.1所示。每個錯誤都是此樹中某個類別的實例,起始於 Exception 根節點。理解此層級結構至關重要:應用層級的錯誤通常繼承自 StandardError,而系統層級的失敗(例如 NoMemoryError)則直接繼承自 Exception

ExceptionSignalExceptionScriptErrorNoMemoryErrorStandardErrorRuntimeErrorArgumentError

2. 錯誤作為資料物件

與低階語言中錯誤可能僅是簡單的回傳碼不同,Ruby 將上下文封裝——包含訊息字串和執行堆疊追蹤——封裝成正式物件。這讓開發者可以將執行時的中斷當作可檢視和透過繼承管理的資料來處理。

架構意圖
該層級結構區分了致命的系統失敗(不應被捕獲)與可恢復的應用錯誤(StandardError)。
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>